blupifandomcom-20200214-history
User blog:JesseRoxII/Speedy Eggbert Hex Editing Tutorial
This is a tutorial for how to hack Speedy Eggbert custom levels with the Hex Editor. (I'll make a YouTube video tutorial eventually, but for now, I'm just gonna post everything I know here.) I HAVEN'T FINISHED TYPING OUT THIS TUTORIAL YET. MORE INFO COMING SOON, MAYBE, I DON'T KNOW. (TOTALLY NOT PROCRASTINATING) Decimal to hexadecimal conversion In case you don't know how hex editors work, it's actually pretty easy to explain. *0 = 0 *1 = 1 *2 = 2 *3 = 3 *4 = 4 *5 = 5 *6 = 6 *7 = 7 *8 = 8 *9 = 9 *10 = A *11 = B *12 = C *13 = D *14 = E *15 = F *16 = 10 etc. Difference between bytes/words/d-words/q-words *11 22 33 44 55 66 77 88 = 8 bytes *2211 4433 6655 8877 = 4 words *44332211 88776655 = 2 double words *8877665544332211 = 1 quadruple word Okay, now for the actual Speedy Eggbert tutorial. Opening the file Player 1, Design 1 = u001-001.blp Player 1, Design 2 = u001-002.blp Player 1, Design 3 = u001-003.blp Player 2, Design 1 = u002-001.blp Player 2, Design 2 = u002-002.blp Player 2, Design 3 = u002-003.blp etc. Level properties D4 = horizontal scrolling D8 = vertical scrolling *0 = scrolling disabled *1 = scrolling enabled DE = music selection *0 = no music *1 = music000.blp *FF = music254.blp *100 = music255.blp etc. E0 = background *0 = decor000.blp *FF = decor255.blp *100 = decor256.blp etc. 148 = Blupi 1's horizontal position 14C = Blupi 1's vertical position 150 = Blupi 2's horizontal position 154 = Blupi 2's vertical position 158 = Blupi 3's horizontal position 15C = Blupi 3's vertical position 160 = Blupi 4's horizontal position 164 = Blupi 4's vertical position *0 = 0 pixels *1 = 1 pixel *40 = 1 square (64 pixels) *100 = 4 squares etc. *FFFFFFFF = -1 pixel *FFFFFFC0 = -1 square (Zero is still a few pixels away from the edge of the screen. Negative numbers will get even closer.) 168 = Blupi 1's rotation 16C = Blupi 2's rotation 170 = Blupi 3's rotation 174 = Blupi 4's rotation *1 = facing left *2 = facing right 178 - 19F = name *all zeros = Objects (object.blp) 364 = object at top left of screen 366 = next object down 42C = next object across etc. 5182 = object at bottom right of screen Here's an image which shows all the objects in the correct order. Each object is 1 word long. Scenery (explo.blp) 5184 = scenery at top left of screen 5186 = next scenery down 524C = next scenery across etc. 9FA2 = scenery at bottom right of screen Elements (element.blp) 9FA4 - 9FD3 = 1st element 9FD4 - A003 = 2nd element A004 - A033 = 3rd element etc. C4F4 - C523 = 200th (last) element Properties of 1st element: (shift forward 30 bytes for 2nd element, 60 for 3rd, etc.) 9FA4 = element type 9FA6 = speed from point 1-2 9FA8 = speed from point 2-1 9FAA = waiting time at point 1 9FAC = waiting time at point 2 Movement properties are in words. 9FB0 = point 1 horizontal position 9FB4 = point 1 vertical position 9FB8 = point 2 horizontal position 9FBC = point 2 vertical position Position properties are in double words. 9FCE = sprite sheet *0 = unknown (crashes game) *1 = object.blp *2 = blupi000.blp *3 = unknown (crashes game) *4 = button00.blp *5 = jauge.blp *6 = text.blp *7 = little.blp *8 = map.blp *9 = explo.blp *A = element.blp *B = blupi001.blp *C = blupi002.blp *D = blupi003.blp 9FD0 = sprite Category:Blog posts